next up previous
Next: 6 Implementing D11 Up: 5 The Active Context Previous: 5.4 Active Context Notification

5.5 Implementation Issues for Active Contexts

The acattach family of routines can be implemented as new Unix system calls. The most critical aspect of implementing active contexts is ensuring protected procedure calls are as fast as possible. Techniques for fast, local cross-address space communication such as lightweight procedure calls [4] are readily applicable to optimizing active context protected procedure calls. The most important difference between a protected procedure call and other cross-address space procedure call mechanisms is the augmented address space.

Because APPs exist as distinct process table entries within the Unix kernel, current Unix semantics can be cleanly mapped to APPs. Most areas of the Unix kernel can be completely unaffected by the introduction of active contexts.

Current RISC processors supporting a virtual cache with keys [23] should make possible efficient address space augmentation for protected procedure calls. The protected procedure caller and its APP can each maintain distinct address space ids (ASIDs). The acppcall and acreturn operations need to change the ASID appropriately.

This scheme treats the augmented address space as a completely distinct address space which is somewhat inefficient in translation lookaside buffer (TLB) entry usage. Processor support for distinct user and kernel modes is very similar to the address space augmentation needs of protected procedure calls. Unfortunately, kernel mode is quite inappropriate for the user-level execution of active contexts. Some processors like the MIPS R4000 [20] do provide a supervisor mode with more limitations than kernel mode. But MIPS supervisor mode enables access to memory outside the typical user range and is probably still too permissive for use in implementing active contexts.

The reservation of a large chunk of user address space for the active context memory range may be an issue for 32-bit processors that are limited to two gigabytes of user address space. Support for 64-bit address spaces obviates this problem. Also in such systems, support for protection domains [18] may also reduce the cost of address space augmentation by treating protected procedure call exit and entry as a lightweight protection domain switch.



next up previous
Next: 6 Implementing D11 Up: 5 The Active Context Previous: 5.4 Active Context Notification



Mark Kilgard
Sun Jan 7 19:06:56 PST 1996